package vm

import (
	"fmt"
	"os"
	"risc-vm/common"
	"risc-vm/vm/rv32"
)

// 加载镜像文件
func load(rom string) *os.File {
	file, err := os.Open(rom)
	if err != nil {
		fmt.Println(fmt.Sprintf("无法打开文件：%s ", rom), err)
		return nil
	}
	return file
}

// 运行镜像
func Run(rom string, bitCount uint8) {
	fileReader := common.NewFileReader(rom)
	file, err := fileReader.Init()
	if err != nil {
		return
	}
	fileInfo, _ := file.Stat()
	fmt.Printf("load file success. fileName: %s size: 0x%x\n", fileInfo.Name(), fileInfo.Size())
	switch bitCount {
	case 32:
		rv32.Run(fileReader)
		break
	default:
		fmt.Printf("当前不支持%d位版本\n", bitCount)
	}
}
